package 笔试;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import util.TraverseUtils;

/**
 * 美图
 * @author Administrator
 *
 */
public class MeiTu {

	private void initQuestion1(List<Integer> list) {
		for (int i = 1; i <= 10; i ++) {
			list.add(i);
		}
	}
	
	/**
	 * Question1：一个List去除偶数， 将去除的偶数加到一个List中返回
	 */
	public void func1() {
		List<Integer> list = new ArrayList<Integer>();
		List<Integer> rs = new ArrayList<Integer>();
		initQuestion1(list);
		Iterator<Integer> iterator =  list.iterator();
		
		while (iterator.hasNext()) {
			int num = iterator.next();
			if (num!= 0 && num%2==0) {
				iterator.remove();
				rs.add(num);
			}

		}
		TraverseUtils.printlnOfList(rs);
	} 
	
	/**
	 * Question2：100以内斐波那契数列（好无聊。。）
	 * @param args
	 */
	public void func2() {
		int n = 100;
		int[] rs = new int[n];
		rs[0] = 0;
		rs[1] = 1;
		for (int i = 2; i < n; i ++) {
			rs[i] = rs[i-1]+rs[i-2]; 
		}
		TraverseUtils.println(rs);
	}
	
	private void initQuestion3(int[] arr1, int[] arr2) {
		for (int i = 0; i < 3; i ++)	arr1[i] = i+1;
		for (int i = 0; i < 5; i ++)	arr2[i] = 10-i;
 	}
	
	/**
	 * Question3：两个数组交叉合并
	 * 	eg：[1, 2, 3] [4, 5, 6] => [1, 4, 2, 5, 6]
	 */
	public void func3() {
		int[] arr1 = new int[3];
		int[] arr2 = new int[5];
		initQuestion3(arr1, arr2);
		
	}
	
	/**
	 * Question4：
	 * 	有一排的数字 例如：[4, 5, 10, 4, 2, 7, 20, 5, 8, 1, 6]
	 * 		任意两个数字之间可以 + 或 - 或 什么都没有（三种运算符）
	 * 			即：4+5 或 4-5 或 45
	 * 		求有多少种方法啊让 所有的这些数字经过这些运算符后等于100
	 * 			即：4+5-10+42-7....+6=100	
	 * @param args
	 */
	
	public static void main(String[] args) {
		new MeiTu().func3();
	}
}
